package gsw.demo.mvp.mvp_rxbus.presenter;

import java.lang.ref.WeakReference;
import java.util.ArrayList;

import gsw.demo.mvp.core.net.rxservice.rxbus.RegisterRxBus;
import gsw.demo.mvp.mvp_rxbus.bean.Girl;
import gsw.demo.mvp.mvp_rxbus.model.GirlModel;
import gsw.demo.mvp.mvp_rxbus.model.GirlModelImp;
import gsw.demo.mvp.mvp_rxbus.view.IGirlView;

/**
 * 表示层：连接M层与V层，处理所有的业务逻辑
 */
public class GirlPresenter<T extends IGirlView> {
    //1.view层的引用。使用弱引用：当内存不足时，可以被回收
    WeakReference<T> mView;
    //2.model层的引用
    GirlModel girlModel = new GirlModelImp();

    public GirlPresenter(T view) {
        this.mView = new WeakReference<T>(view);
        girlModel.loadGirl();
    }

    /**
     * 3.执行UI逻辑操作
     * 这里使用RxBus框架来处理数据.
     *
     * @RegisterRxBus() 用来声明处理数据的方法
     */
    @RegisterRxBus()
    public void getShowGirlsData(ArrayList<Girl> list) {
        mView.get().showGirls(list);
    }
}








